---------------------------------------------------------------
-- @Copyright：           zour
-- @Description：         广告全局定义

-- @modify time           2021-10-28
---------------------------------------------------------------
require "modules.business_advert.advert_include"

--=================================== 代码 data=====================================
ADVERT = "business_advert"      --广告命名头 字符串
ADVERT_REWARDS = "business_advert_rewards"      --广告奖励命名头 字符串
FIX_ERROR = "fix_error"
AD_SHARE = "ssdbcomm"

--日志名称
AD_CONFIG = "ad_config"
AD_POSITION = "ad_position"
AD_SHOW = "ad_show"
AD_START = "ad_start"
AD_FINISH = "ad_finish"

--通用值
COMMON_VALUE = {
    SUCCESS = 0,        --成功
    FAIL = -1,          --失败
    UNDEF = 65535,      --未定义
}

--时间相关变量
ONE_DAY_HOUR = 24               --一天24小时
ONE_HOUR_SEC = 3600             --一小时3600秒
TIME_ZONE_DELTA = 8             --时区偏移为8小时
RESET_MONDAY = 2                --周一复位时，时间函数里的wday要减2
RESET_SUNDAY = 1                --周日复位时，时间函数里的wday要减1

--奖励类型
REWARD_SPECIAL_BASE = 10000     --特殊广告位基准
REWARD_TYPE = {
    --一般类型广告位
    REDUCE_TIME = 1,        --减时间
    GET_ITEMS = 2,          --领取物品
    REPLACE_SHARE = 3,      --替代分享
    CALL_BACK = 4,          --触发器广告
    GET_MINIDIAN = 5,       --领取迷你点
    
    --特殊广告位
    --复活
    POS_2 = REWARD_SPECIAL_BASE + 2,           --2号广告位 (冒险)原地复活
    POS_105 = REWARD_SPECIAL_BASE + 105,       --105

    --幸运方块
    POS_32 = REWARD_SPECIAL_BASE + 32,         --32幸运方块免费闯关
    POS_33 = REWARD_SPECIAL_BASE + 33,         --32幸运方块免费闯关复活

    --30广告商人2兑换物品
    POS_30 = REWARD_SPECIAL_BASE + 30,

    --29悦享卡广告
    POS_29 = REWARD_SPECIAL_BASE + 29,

    --9号福利，广告商的赞助
    POS_9 = REWARD_SPECIAL_BASE + 9,

    --36号迷你点收益
    POS_36 = REWARD_SPECIAL_BASE + 36,
}

--广告类型 [中文拼音]
AD_TYPE = {
    NOTHING = 0,            --无
    JILI_SHIPING = 1,       --激励视频
    CHAPING_TUPIAN = 2,     --插屏-图片
    YUANSHENG = 3,          --原生
    H5 = 4,                 --H5
    CHAPING_SHIPING = 6,    --插屏-视频 [为什么没有5？我也不知道]
}

--各类型广告播放时长
AD_SHOW_TIME = {
    [AD_TYPE.CHAPING_TUPIAN] = 2,
    [AD_TYPE.YUANSHENG] = 0,     --没有播放结束
    [AD_TYPE.H5] = 5,
    [AD_TYPE.CHAPING_SHIPING] = 3,
}

--=================================== 配置表相关定义 =====================================
--后台配置表[对应web后台的xlsx表] （WEB后台每新增一个type的xlsx表都要在这里同步定义）
--1,2是老版本账号服加载的，所以新版本商业化广告服从3,4开始
WEB_CONFIG = {
    CONFIG = 3,             --v0.1.0广告配置表
    BOUNS = 4,              --v0.1.0奖励配置表
    ZUOBI = 5,              --开发者作弊表
}

--[[
web后台配置表对应程序里: 
    1.原始数据总表advert_raw_config里的字段名
    2.config/advert_configX.lua环境配置里的url字段名
    3.change_config_xxx
--]]
WEB_CONFIG_NAME = {
    [WEB_CONFIG.CONFIG] = "config",         --v0.1.0广告配置表
    [WEB_CONFIG.BOUNS] = "bouns",           --v0.1.0奖励配置表
    [WEB_CONFIG.ZUOBI] = "zuobi",           --作弊表
}

--以某个数据为 key 来整理数据 [每份配置可能转换规则不一样，代码根据这里的定义实现不同转换方式]
CONFIG_CHANGE_TYPE = {
    --按广告位区分
    [1] = {
        name = "config_absense",     --转换后table的名字
        key = "adsense_id",          --作key的xlsx表字段
    },
    --按渠道区分
    [2] = {
        name = "config_channel",    
        key = "channel_id",          
    },
    --按平台区分
    [3] = {
        name = "config_platform",    
        key = "advert_platform_id",          
    },
    [4] = {
        name = "config_zuobi",
        key = "chanel_id",
    },
}

--[[
web原始数据转换成易读数据的规则定义：
    1.name字段是转换后的配置表名  [CHANGE_CONFIG中每一个]
    2.type是需要按哪几种转换方式来整理数据
]]
CHANGE_CONFIG = {
    [WEB_CONFIG.CONFIG] = {
        name = WEB_CONFIG_NAME[WEB_CONFIG.CONFIG],   
        type = {    
            --CONFIG_CHANGE_TYPE[1],
            CONFIG_CHANGE_TYPE[2],
            --CONFIG_CHANGE_TYPE[3],
        }
    },
    [WEB_CONFIG.BOUNS] = {
        name = WEB_CONFIG_NAME[WEB_CONFIG.BOUNS],        
        type = {    
            CONFIG_CHANGE_TYPE[1]
        }
    },
    [WEB_CONFIG.ZUOBI] = {
        name = WEB_CONFIG_NAME[WEB_CONFIG.ZUOBI],   
        type = {    
            CONFIG_CHANGE_TYPE[4],
        }
    },
}

--发奖的广告位
SEND_REWARDS_POSITIONS = {	
    --果实冷却
    [5] = true,
    --发迷你点和物品
    [26] = true,
    [14] = true,
    [16] = true,
    [10] = true,
    --替代分享
    [7] = true,
    --复活发奖
    [2] = true,
	[105] = true,
}

--=================================== SSDB相关 =====================================
__SSDB_SERVER_DC__ = true           --是否使用data cache
_READ_SSDB_WITHOUT_LOCK_ = 1        --不加锁读SSDB
_WRITE_SSDB_WITHOUT_LOCK_ = 1       --不解锁写SSDB

SSDB_COMM = "comm"                  --无须分表的公共数据

--ssdb key值定义
SSDB_KEY_DEF = {
	--
    NONE = 0,
    --web后台更新时间
    UPDATE_CONFIG_TIME = 25,     
    --config数据
    UPDATE_CONFIG_DATA = 26,
    --[[
    v1.0.0:
        玩家广告数据[仅做hash值]，玩家的广告信息用渠道+平台为key区分，数据太大了。很容易超过20K \
    所以只能 以 [uin_渠道_平台_广告位]这样的四元组来确定唯一key, 这里定义的key没被用到就当成 \
    取广告位信息时的hash值了   
    v1.0.1:
        后续通过ssdb官网资料发现hash值可以是string,并不是mini_kv文档上说的small int (已与作者确认) \
    故这里修改以uin做key,hash就用 渠道_平台_广告位分  
    --]]
    --AD_INFO = 2,
}